Das Script in select_stmt ist relativ lang, wir wollen es daher nur Auszugsweise kommentieren. Allgemein formuliert arbeiten wir so:
1. Zunächst werden die Eingaben in den Auswahlfeldern ausgewertet und eine Ergebnismenge ermittelt, meist in Form einer temporären Tabelle.
2. Diese Tabelle wird mit den Hilfstabellen in der Datenbank gejoined, und es wir eine Ergebnistabelle berechnet. Ggf. werden noch Summen oder Prozente berechnet, meist benötigen wir dazu weitere temporäre Tabellen.
3. Der letzte select im Feld select_stmt enthält die Ergebnistabelle, die das Applet empfängt. Mit Hilfe der xil_proplist werden die Spaltenüberschriften- und Breiten gesetzt, und das Ergebnis wird angezeigt.
4. Direkt danach wird die letzte temporäre Tabelle gedroppt, und die Datenbankverbindung wird an das SuperX-Servlet zurückgegeben.
Am Anfang eines
SQL-Scriptes werden die Auswahlfelder ausgewertet, die der Anwender angeklickt
hat, bevor er Suchen gedrückt hat. So wird
z.B. das Feld
wie folgt interpretiert:

Die Prozedur "execute procedure?" steht am Anfang von fast jeder SuperX-Abfrage und ermittelt eine temporäre Tabelle tmp_ch110_institut, die die ausgewählten Lehreinheitsnummern enthält[2]. Konkret wird der Passus "<<Org. Einheit>>" durch den Schlüssel ersetzt, der in der Maske ausgewählt wurde. Es handelt sich also bei SuperX-Abfragen um dynamisches SQL.
Die Lehreinheiten wiederum werden dann mit der Hilfstabelle sos_stat_lehr gejoined, die eine Statistik von allen Lehreinheiten und Semestern enthält[3]. Die Einschränkungen durch die Maskenfelder Köpfe oder Fälle, Seit Semester und Hörerstatus sieht in SQL wie folgt aus:
|
Für "Köpfe oder Fälle" etc. finden wir hier nur Platzhalter. Alle relevanten Sätze werden in die temporäre Tabelle tmp_sos_stat_lehr selektiert (Syntax von Informix, bei Postgres sieht das etwas anders aus). |
Wenn das Script abläuft, werden die Platzhalter ersetzt. In der Java-Konsole sieht das so aus:
|
Statt
"<<Köpfe oder Fälle>>"
finden wir den SQL-Ausdruck |
|
|
Der letzte
Select enthält die Ergebnistabelle: "select eintrag?". |
Ein kurzer Hinweis zur xil_proplist: Spaltenüberschriften sind von 0 aufsteigend durchnummeriert, und die Überschriften selbst können durch "\n" mit Zeilenumbrüchen versehen werden. Pro Überschrift wird ein Absatz formuliert, u.a. auch die Breite der Spalte. Alle anderen Angaben werden zur Zeit noch nicht auswertet[4]. Wichtig ist dass eine Spalte pro Absatz definiert ist.
![]() |
![]() |
Seite 13 / 102 Letzter Update: 17.06.2008 Impressum |